<?php
interface DbCache{
    #设置缓存
    public function set();
    #读取缓存
    public function get();
}

#实现的接口必须实现里面的方法
class Mysql implements DbCache{
    public function set()
    {
        // TODO: Implement set() method.
    }

    public function get()
    {
        // TODO: Implement get() method.
    }
}

class Redis implements DbCache{
    public function set()
    {
        // TODO: Implement set() method.
    }

    public function get()
    {
        echo '这里使用redis来读取缓存';
        // TODO: Implement get() method.
    }
}



class ParentCache{
    public function inertSql(){
        return '添加数据父类';
    }
}

#定义一个缓存类
class Cache extends ParentCache {
    //判断使用哪种缓存
    public function inertSql()
    {
        #使用parent来调用父类的方法
         return parent::inertSql();
//        return '添加数据子类';
    }

    public static function instance(string $driver){
        switch ($driver){
            case 'mysql':
                return new Mysql();
                break;
            case 'redis':
                return new Redis();
                break;
        }
    }

    public function insert(){
        return $this->inertSql();
    }
}

$cache = new Cache();
//$Driver = $cache::instance('redis');
//$Driver->get();
echo $cache->insert();

